import { createRouter, createWebHistory } from 'vue-router'

// 创建路由对象
const router = createRouter({
    history: createWebHistory(),
    routes: [
        {
            path: '/',
            redirect: '/login' // 路由重定向
        },
        {
            path: '/login',
            component: () => import('@/view/Login.vue')
        },
        {
            path: '/home',
            component: () => import('@/view/Home.vue'),
            children: [
                {
                    path: 'user',
                    component: () => import('@/components/User.vue')
                },
                {
                    path: 'user/:id',
                    component: () => import('@/components/user/UserDetails.vue')
                },
                {
                    path: 'rights',
                    component: () => import('@/components/Rights.vue')
                },
            ]
        },
    ]
})

// 全局的前置守卫，每次路由跳转经过这里做判断
router.beforeEach((to, from, next) => {
    console.log(to.path)
    // 是否存在token，即是否登录了
    let hasToken = sessionStorage.getItem('token') !== null && 
                    sessionStorage.getItem('token') !== undefined
    if(to.path === '/login') {
        if(hasToken) {
            // 登录了，重定向到主页
            return next('/home')
        } else {
            return next()
        }
    }
    // 只要以/home开头的地址
    if(to.path.startsWith('/home')) {
        if(hasToken) {
            // 登录了
            return next()
        } else {
            // 没登录，重定向到登录页
            return next('/login')
        }
    }
})

// 导出路由对象
export default router